home *** CD-ROM | disk | FTP | other *** search
/ Champak 62 / Volume 62 - JOGO DISK .iso / Games / penguin_dinner.swf / scripts / __Packages / classes / utils / Utils.as < prev   
Text File  |  2008-03-17  |  15KB  |  322 lines

  1. class classes.utils.Utils
  2. {
  3.    static var hexcase = 0;
  4.    static var b64pad = "";
  5.    static var chrsz = 8;
  6.    function Utils()
  7.    {
  8.    }
  9.    static function rndFromXtoY(x, y)
  10.    {
  11.       if(x > y)
  12.       {
  13.          return null;
  14.       }
  15.       var _loc1_ = x + Math.floor(Math.random() * (y - x + 1));
  16.       return _loc1_;
  17.    }
  18.    static function formattedCurrency(num)
  19.    {
  20.       var _loc9_ = undefined;
  21.       if(num < 0)
  22.       {
  23.          num = - num;
  24.          _loc9_ = true;
  25.       }
  26.       else
  27.       {
  28.          _loc9_ = false;
  29.       }
  30.       var _loc5_ = 3;
  31.       var _loc6_ = ",";
  32.       var _loc4_ = String(num);
  33.       var _loc2_ = "";
  34.       var _loc7_ = _loc4_.length - 1;
  35.       var _loc3_ = 0;
  36.       var _loc1_ = _loc7_;
  37.       while(_loc1_ >= 0)
  38.       {
  39.          _loc2_ = _loc4_.charAt(_loc1_) + _loc2_;
  40.          _loc3_ = _loc3_ + 1;
  41.          if(_loc3_ == _loc5_ && _loc1_ > 0)
  42.          {
  43.             _loc3_ = 0;
  44.             _loc2_ = _loc6_ + _loc2_;
  45.          }
  46.          _loc1_ = _loc1_ - 1;
  47.       }
  48.       if(_loc9_)
  49.       {
  50.          return "-$" + _loc2_;
  51.       }
  52.       return "$" + _loc2_;
  53.    }
  54.    static function validateEmail(email)
  55.    {
  56.       if(email.length < 5)
  57.       {
  58.          return false;
  59.       }
  60.       var _loc4_ = "*|,\":<>[]{}`\';()&$#%";
  61.       var _loc3_ = email.length;
  62.       var _loc1_ = 0;
  63.       while(_loc1_ < _loc3_)
  64.       {
  65.          if(_loc4_.indexOf(email.charAt(_loc1_)) != -1)
  66.          {
  67.             return false;
  68.          }
  69.          _loc1_ = _loc1_ + 1;
  70.       }
  71.       var _loc5_ = email.lastIndexOf("@");
  72.       if(_loc5_ < 1 || _loc5_ == _loc3_ - 1)
  73.       {
  74.          return false;
  75.       }
  76.       var _loc6_ = email.lastIndexOf(".");
  77.       if(_loc6_ < 4 || _loc6_ == _loc3_ - 1)
  78.       {
  79.          return false;
  80.       }
  81.       if(_loc5_ > _loc6_)
  82.       {
  83.          return false;
  84.       }
  85.       _loc1_ = 0;
  86.       while(_loc1_ < _loc3_)
  87.       {
  88.          if((email.charAt(_loc1_) == "." || email.charAt(_loc1_) == "@") && email.charAt(_loc1_) == email.charAt(_loc1_ - 1))
  89.          {
  90.             return false;
  91.          }
  92.          _loc1_ = _loc1_ + 1;
  93.       }
  94.       return true;
  95.    }
  96.    static function hex_md5(s)
  97.    {
  98.       return classes.utils.Utils.binl2hex(classes.utils.Utils.core_md5(classes.utils.Utils.str2binl(s),s.length * classes.utils.Utils.chrsz));
  99.    }
  100.    static function b64_md5(s)
  101.    {
  102.       return classes.utils.Utils.binl2b64(classes.utils.Utils.core_md5(classes.utils.Utils.str2binl(s),s.length * classes.utils.Utils.chrsz));
  103.    }
  104.    static function str_md5(s)
  105.    {
  106.       return classes.utils.Utils.binl2str(classes.utils.Utils.core_md5(classes.utils.Utils.str2binl(s),s.length * classes.utils.Utils.chrsz));
  107.    }
  108.    static function hex_hmac_md5(key, data)
  109.    {
  110.       return classes.utils.Utils.binl2hex(classes.utils.Utils.core_hmac_md5(key,data));
  111.    }
  112.    static function b64_hmac_md5(key, data)
  113.    {
  114.       return classes.utils.Utils.binl2b64(classes.utils.Utils.core_hmac_md5(key,data));
  115.    }
  116.    static function str_hmac_md5(key, data)
  117.    {
  118.       return classes.utils.Utils.binl2str(classes.utils.Utils.core_hmac_md5(key,data));
  119.    }
  120.    static function md5_vm_test()
  121.    {
  122.       return classes.utils.Utils.hex_md5("abc") == "900150983cd24fb0d6963f7d28e17f72";
  123.    }
  124.    static function core_md5(x, len)
  125.    {
  126.       x[len >> 5] |= 128 << len % 32;
  127.       x[(len + 64 >>> 9 << 4) + 14] = len;
  128.       var _loc4_ = 1732584193;
  129.       var _loc3_ = -271733879;
  130.       var _loc2_ = -1732584194;
  131.       var _loc1_ = 271733878;
  132.       var _loc5_ = 0;
  133.       while(_loc5_ < x.length)
  134.       {
  135.          var _loc10_ = _loc4_;
  136.          var _loc9_ = _loc3_;
  137.          var _loc8_ = _loc2_;
  138.          var _loc7_ = _loc1_;
  139.          _loc4_ = classes.utils.Utils.md5_ff(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 0],7,-680876936);
  140.          _loc1_ = classes.utils.Utils.md5_ff(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 1],12,-389564586);
  141.          _loc2_ = classes.utils.Utils.md5_ff(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 2],17,606105819);
  142.          _loc3_ = classes.utils.Utils.md5_ff(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 3],22,-1044525330);
  143.          _loc4_ = classes.utils.Utils.md5_ff(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 4],7,-176418897);
  144.          _loc1_ = classes.utils.Utils.md5_ff(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 5],12,1200080426);
  145.          _loc2_ = classes.utils.Utils.md5_ff(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 6],17,-1473231341);
  146.          _loc3_ = classes.utils.Utils.md5_ff(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 7],22,-45705983);
  147.          _loc4_ = classes.utils.Utils.md5_ff(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 8],7,1770035416);
  148.          _loc1_ = classes.utils.Utils.md5_ff(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 9],12,-1958414417);
  149.          _loc2_ = classes.utils.Utils.md5_ff(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 10],17,-42063);
  150.          _loc3_ = classes.utils.Utils.md5_ff(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 11],22,-1990404162);
  151.          _loc4_ = classes.utils.Utils.md5_ff(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 12],7,1804603682);
  152.          _loc1_ = classes.utils.Utils.md5_ff(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 13],12,-40341101);
  153.          _loc2_ = classes.utils.Utils.md5_ff(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 14],17,-1502002290);
  154.          _loc3_ = classes.utils.Utils.md5_ff(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 15],22,1236535329);
  155.          _loc4_ = classes.utils.Utils.md5_gg(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 1],5,-165796510);
  156.          _loc1_ = classes.utils.Utils.md5_gg(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 6],9,-1069501632);
  157.          _loc2_ = classes.utils.Utils.md5_gg(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 11],14,643717713);
  158.          _loc3_ = classes.utils.Utils.md5_gg(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 0],20,-373897302);
  159.          _loc4_ = classes.utils.Utils.md5_gg(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 5],5,-701558691);
  160.          _loc1_ = classes.utils.Utils.md5_gg(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 10],9,38016083);
  161.          _loc2_ = classes.utils.Utils.md5_gg(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 15],14,-660478335);
  162.          _loc3_ = classes.utils.Utils.md5_gg(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 4],20,-405537848);
  163.          _loc4_ = classes.utils.Utils.md5_gg(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 9],5,568446438);
  164.          _loc1_ = classes.utils.Utils.md5_gg(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 14],9,-1019803690);
  165.          _loc2_ = classes.utils.Utils.md5_gg(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 3],14,-187363961);
  166.          _loc3_ = classes.utils.Utils.md5_gg(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 8],20,1163531501);
  167.          _loc4_ = classes.utils.Utils.md5_gg(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 13],5,-1444681467);
  168.          _loc1_ = classes.utils.Utils.md5_gg(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 2],9,-51403784);
  169.          _loc2_ = classes.utils.Utils.md5_gg(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 7],14,1735328473);
  170.          _loc3_ = classes.utils.Utils.md5_gg(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 12],20,-1926607734);
  171.          _loc4_ = classes.utils.Utils.md5_hh(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 5],4,-378558);
  172.          _loc1_ = classes.utils.Utils.md5_hh(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 8],11,-2022574463);
  173.          _loc2_ = classes.utils.Utils.md5_hh(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 11],16,1839030562);
  174.          _loc3_ = classes.utils.Utils.md5_hh(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 14],23,-35309556);
  175.          _loc4_ = classes.utils.Utils.md5_hh(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 1],4,-1530992060);
  176.          _loc1_ = classes.utils.Utils.md5_hh(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 4],11,1272893353);
  177.          _loc2_ = classes.utils.Utils.md5_hh(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 7],16,-155497632);
  178.          _loc3_ = classes.utils.Utils.md5_hh(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 10],23,-1094730640);
  179.          _loc4_ = classes.utils.Utils.md5_hh(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 13],4,681279174);
  180.          _loc1_ = classes.utils.Utils.md5_hh(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 0],11,-358537222);
  181.          _loc2_ = classes.utils.Utils.md5_hh(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 3],16,-722521979);
  182.          _loc3_ = classes.utils.Utils.md5_hh(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 6],23,76029189);
  183.          _loc4_ = classes.utils.Utils.md5_hh(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 9],4,-640364487);
  184.          _loc1_ = classes.utils.Utils.md5_hh(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 12],11,-421815835);
  185.          _loc2_ = classes.utils.Utils.md5_hh(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 15],16,530742520);
  186.          _loc3_ = classes.utils.Utils.md5_hh(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 2],23,-995338651);
  187.          _loc4_ = classes.utils.Utils.md5_ii(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 0],6,-198630844);
  188.          _loc1_ = classes.utils.Utils.md5_ii(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 7],10,1126891415);
  189.          _loc2_ = classes.utils.Utils.md5_ii(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 14],15,-1416354905);
  190.          _loc3_ = classes.utils.Utils.md5_ii(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 5],21,-57434055);
  191.          _loc4_ = classes.utils.Utils.md5_ii(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 12],6,1700485571);
  192.          _loc1_ = classes.utils.Utils.md5_ii(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 3],10,-1894986606);
  193.          _loc2_ = classes.utils.Utils.md5_ii(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 10],15,-1051523);
  194.          _loc3_ = classes.utils.Utils.md5_ii(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 1],21,-2054922799);
  195.          _loc4_ = classes.utils.Utils.md5_ii(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 8],6,1873313359);
  196.          _loc1_ = classes.utils.Utils.md5_ii(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 15],10,-30611744);
  197.          _loc2_ = classes.utils.Utils.md5_ii(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 6],15,-1560198380);
  198.          _loc3_ = classes.utils.Utils.md5_ii(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 13],21,1309151649);
  199.          _loc4_ = classes.utils.Utils.md5_ii(_loc4_,_loc3_,_loc2_,_loc1_,x[_loc5_ + 4],6,-145523070);
  200.          _loc1_ = classes.utils.Utils.md5_ii(_loc1_,_loc4_,_loc3_,_loc2_,x[_loc5_ + 11],10,-1120210379);
  201.          _loc2_ = classes.utils.Utils.md5_ii(_loc2_,_loc1_,_loc4_,_loc3_,x[_loc5_ + 2],15,718787259);
  202.          _loc3_ = classes.utils.Utils.md5_ii(_loc3_,_loc2_,_loc1_,_loc4_,x[_loc5_ + 9],21,-343485551);
  203.          _loc4_ = classes.utils.Utils.safe_add(_loc4_,_loc10_);
  204.          _loc3_ = classes.utils.Utils.safe_add(_loc3_,_loc9_);
  205.          _loc2_ = classes.utils.Utils.safe_add(_loc2_,_loc8_);
  206.          _loc1_ = classes.utils.Utils.safe_add(_loc1_,_loc7_);
  207.          _loc5_ += 16;
  208.       }
  209.       return new Array(_loc4_,_loc3_,_loc2_,_loc1_);
  210.    }
  211.    static function md5_cmn(q, a, b, x, s, t)
  212.    {
  213.       return classes.utils.Utils.safe_add(classes.utils.Utils.bit_rol(classes.utils.Utils.safe_add(classes.utils.Utils.safe_add(a,q),classes.utils.Utils.safe_add(x,t)),s),b);
  214.    }
  215.    static function md5_ff(a, b, c, d, x, s, t)
  216.    {
  217.       return classes.utils.Utils.md5_cmn(b & c | (~b) & d,a,b,x,s,t);
  218.    }
  219.    static function md5_gg(a, b, c, d, x, s, t)
  220.    {
  221.       return classes.utils.Utils.md5_cmn(b & d | c & (~d),a,b,x,s,t);
  222.    }
  223.    static function md5_hh(a, b, c, d, x, s, t)
  224.    {
  225.       return classes.utils.Utils.md5_cmn(b ^ c ^ d,a,b,x,s,t);
  226.    }
  227.    static function md5_ii(a, b, c, d, x, s, t)
  228.    {
  229.       return classes.utils.Utils.md5_cmn(c ^ (b | ~d),a,b,x,s,t);
  230.    }
  231.    static function core_hmac_md5(key, data)
  232.    {
  233.       var _loc2_ = classes.utils.Utils.str2binl(key);
  234.       if(_loc2_.length > 16)
  235.       {
  236.          _loc2_ = classes.utils.Utils.core_md5(_loc2_,key.length * classes.utils.Utils.chrsz);
  237.       }
  238.       var _loc3_ = Array(16);
  239.       var _loc4_ = Array(16);
  240.       var _loc1_ = 0;
  241.       while(_loc1_ < 16)
  242.       {
  243.          _loc3_[_loc1_] = _loc2_[_loc1_] ^ 909522486;
  244.          _loc4_[_loc1_] = _loc2_[_loc1_] ^ 1549556828;
  245.          _loc1_ = _loc1_ + 1;
  246.       }
  247.       var _loc5_ = classes.utils.Utils.core_md5(_loc3_.concat(classes.utils.Utils.str2binl(data)),512 + data.length * classes.utils.Utils.chrsz);
  248.       return classes.utils.Utils.core_md5(_loc4_.concat(_loc5_),640);
  249.    }
  250.    static function safe_add(x, y)
  251.    {
  252.       var _loc1_ = (x & 65535) + (y & 65535);
  253.       var _loc2_ = (x >> 16) + (y >> 16) + (_loc1_ >> 16);
  254.       return _loc2_ << 16 | _loc1_ & 65535;
  255.    }
  256.    static function bit_rol(num, cnt)
  257.    {
  258.       return num << cnt | num >>> 32 - cnt;
  259.    }
  260.    static function str2binl(str)
  261.    {
  262.       var _loc3_ = new Array();
  263.       var _loc4_ = (1 << classes.utils.Utils.chrsz) - 1;
  264.       var _loc1_ = 0;
  265.       while(_loc1_ < str.length * classes.utils.Utils.chrsz)
  266.       {
  267.          _loc3_[_loc1_ >> 5] |= (str.charCodeAt(_loc1_ / classes.utils.Utils.chrsz) & _loc4_) << _loc1_ % 32;
  268.          _loc1_ += classes.utils.Utils.chrsz;
  269.       }
  270.       return _loc3_;
  271.    }
  272.    static function binl2str(bin)
  273.    {
  274.       var _loc3_ = "";
  275.       var _loc4_ = (1 << classes.utils.Utils.chrsz) - 1;
  276.       var _loc1_ = 0;
  277.       while(_loc1_ < bin.length * 32)
  278.       {
  279.          _loc3_ += String.fromCharCode(bin[_loc1_ >> 5] >>> _loc1_ % 32 & _loc4_);
  280.          _loc1_ += classes.utils.Utils.chrsz;
  281.       }
  282.       return _loc3_;
  283.    }
  284.    static function binl2hex(binarray)
  285.    {
  286.       var _loc3_ = !classes.utils.Utils.hexcase ? "0123456789abcdef" : "0123456789ABCDEF";
  287.       var _loc4_ = "";
  288.       var _loc1_ = 0;
  289.       while(_loc1_ < binarray.length * 4)
  290.       {
  291.          _loc4_ += _loc3_.charAt(binarray[_loc1_ >> 2] >> _loc1_ % 4 * 8 + 4 & 15) + _loc3_.charAt(binarray[_loc1_ >> 2] >> _loc1_ % 4 * 8 & 15);
  292.          _loc1_ = _loc1_ + 1;
  293.       }
  294.       return _loc4_;
  295.    }
  296.    static function binl2b64(binarray)
  297.    {
  298.       var _loc6_ = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
  299.       var _loc4_ = "";
  300.       var _loc2_ = 0;
  301.       while(_loc2_ < binarray.length * 4)
  302.       {
  303.          var _loc5_ = (binarray[_loc2_ >> 2] >> 8 * (_loc2_ % 4) & 255) << 16 | (binarray[_loc2_ + 1 >> 2] >> 8 * ((_loc2_ + 1) % 4) & 255) << 8 | binarray[_loc2_ + 2 >> 2] >> 8 * ((_loc2_ + 2) % 4) & 255;
  304.          var _loc1_ = 0;
  305.          while(_loc1_ < 4)
  306.          {
  307.             if(_loc2_ * 8 + _loc1_ * 6 > binarray.length * 32)
  308.             {
  309.                _loc4_ += classes.utils.Utils.b64pad;
  310.             }
  311.             else
  312.             {
  313.                _loc4_ += _loc6_.charAt(_loc5_ >> 6 * (3 - _loc1_) & 63);
  314.             }
  315.             _loc1_ = _loc1_ + 1;
  316.          }
  317.          _loc2_ += 3;
  318.       }
  319.       return _loc4_;
  320.    }
  321. }
  322.